package com.javacoo.swing.jxbrowser.content;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

import com.javacoo.swing.jxbrowser.BaseBrowser;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.Callback;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;

/**
 * 正在加载和等待
 * <li></li>
 * 在某些情况下（例如自动化测试），您可能需要阻止当前线程执行并等待网页完全加载。JxBrowser API提供允许执行此操作的功能。以下示例代码演示了如何加载http://www.google.com网页并等待它完全加载
 * @author: duanyong@jccfc.com
 * @since: 2020/9/25 9:37
 */
public class LoadingWaiting extends BaseBrowser {
    public static void main(String[] args) {
        Browser browser = new Browser();
        BrowserView browserView = new BrowserView(browser);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.add(browserView, BorderLayout.CENTER);
        frame.setSize(700, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        Long start = System.currentTimeMillis();
        Browser.invokeAndWaitFinishLoadingMainFrame(browser, new Callback<Browser>() {
            @Override
            public void invoke(Browser value) {
                value.loadURL(BASE_URL);
            }
        });
        System.out.println("加载完成,耗时="+((System.currentTimeMillis()-start))/1000*1000);
    }
}
